iT邦幫忙

2023 iThome 鐵人賽

DAY 29
0
Modern Web

FastAPI 入門30天系列 第 29

Day-29 部屬到GCP Cloud Run

  • 分享至 

  • xImage
  •  

我們上一篇學會怎麼將我們的 FastAPI 應用程式打包成 Docker 容器,今天要教大家怎麼用 GCP 的 Cloud Run 將之前的庫存系統範例部屬到雲端上。

範例程式:https://github.com/qwe8989785/FastAPI_easy_Inventory

Cloud Run

Cloud Run 是 Google Cloud 的全代管式 Serverless 服務,使用者僅需透過簡單的指令或 Console 介面,即可直接開發及快速部署具備高擴充性的容器化應用程式及管理服務。

前置作業

在部屬前請先完成以下作業:

  1. 將程式碼上傳到可使用 Cloud build 的 git 倉庫中。
  2. 在目錄底下新增 Dockerfile,記得檔名要打對。

建立服務

GCP 平台建議大家使用 Chrome 瀏覽器開啟,其他瀏覽器可能會有些速度較慢的問題出現。

https://ithelp.ithome.com.tw/upload/images/20231004/20152669Fotsg8x0iC.png

首先我們直接開啟一個新專案,到 Cloud Run 的頁面直接點選建立服務。

https://ithelp.ithome.com.tw/upload/images/20231004/20152669DjDtiGeTAj.png

選取持續透過原始碼存放區部署新的修訂版本,我們將透過設定Cloud Build 來對我們的git 倉儲做連動,Cloud Build 會根據你推送的分支來完成自動部屬。

https://ithelp.ithome.com.tw/upload/images/20231004/201526692i12Nyx3rX.png

我這裡使用GitHub 來作為我的倉儲使用,跟著設定即可。

https://ithelp.ithome.com.tw/upload/images/20231004/20152669FoBBYUcn5e.png

這裡選擇要追蹤的分支和建構的類型,我的範例沒有其他分支故選main即可,建構類型我們使用Dockerfile 的形式,會在你的分支有異動時使用你目錄下的 Dockerfile 建置映像檔並部屬到Cloud Run。

https://ithelp.ithome.com.tw/upload/images/20231004/20152669AOAo5gKrOF.png

CPU 分配選取 只在要求處理期間分配 CPU , 執行個體數量下限設為 0。

如果你的服務在前期沒有較高的流量的話,這樣的配置可以大幅降低你的建設成本。

輸入控管和驗證就直接使用全允許即可,我們只是建立起來測試。

https://ithelp.ithome.com.tw/upload/images/20231004/20152669ZM0EvmzftV.png

容器通訊埠記得改為你 dockerfile 內所設定的埠號,這樣存取 Cloud Run 時才能存取的到。

設定好後直接建立服務即可。

https://ithelp.ithome.com.tw/upload/images/20231004/20152669PA2PQFYE7R.png

部屬好後可以看到你的服務的Dashboard,也可以看到它給你一串網址可以存取服務。

https://ithelp.ithome.com.tw/upload/images/20231004/20152669tY6bDvEv0k.png

到這裡我們就成功部屬到 Cloud Run 上來了。

https://ithelp.ithome.com.tw/upload/images/20231004/20152669EYxJfGmtP3.png

你如果有 domain 的話也可以在管理自訂網域裡將你的 domain 連接到你的服務。

小結

Cloud Run 是筆者使用過的蠻便利的服務,相同服務有 AWS 的 App Runner。挑選自己用的順手的就好了。當然實務上通常會搭配其他的服務來達成資安上的防護,這裡我就不多做介紹。有想要輕鬆部屬的話,Cloud Run 會是個不錯的選擇。

參考資料

Cloud Run 是什麼?6大特色介紹與實作教學 - Cloud Ace (cloud-ace.tw)


上一篇
Day-28 容器化
下一篇
Day-30 完賽心得
系列文
FastAPI 入門30天30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言